software development development java medical device software management open source consulting upgrade pc medical firmware medical device firmware projects hardware issues software outsourcing project management bpo change management website design developers outsource